package my.test.observer;

import java.util.ArrayList;

/**
 * @Author 许玉康
 * @Date 2019/9/25 14:52
 */
public class HanFeizi_3 implements Observable,IHanFeiZi {

    //定义一个变长数组,存放所有的观察者
    private ArrayList<Observer> observerList = new ArrayList<>();

    @Override
    public void haveBreakfast() {
        System.out.println("韩非子：开始吃饭了。。。");
        this.notifyObserver("韩非子在吃饭");
    }

    @Override
    public void haveFun() {
        System.out.println("韩非子：开始娱乐了。。。");
        this.notifyObserver("韩非子在娱乐");
    }

    //增加观察者
    @Override
    public void addObserver(Observer observer) {
        this.observerList.add(observer);
    }

    //删除观察者
    @Override
    public void deleteObserver(Observer observer) {
        this.observerList.remove(observer);
    }

    //通知所有的观察者
    @Override
    public void notifyObserver(String context) {
        for (Observer ob : observerList) {
            ob.update(context);
        }
    }
}
